/**
 * 封装http请求的弹出框
 * 常用于表格的删除,提交等功能
 */
export default {
    install(Vue) {

        Object.defineProperty(Vue.prototype.$bui, 'httpConfirm', {
            value: function ({
                url = '',
                data,
                title = '提示',
                content = '你确定要这样做吗？',
                contentType,
                cancel, //取消回调
                success, //请求成功
                fail, //请求失败
            }) {
                const Vue = window.Vue.prototype

                // 根据contentType重置content
                if (content === 'submit') {
                    content = '你确认要提交吗？'
                }
                if (content === 'delete') {
                    content = '删除后数据不能恢复，确定删除所选记录？'
                }

                Vue.$confirm(content, title, {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {

                    if (url) {
                        // 后端进行删除请求
                        Vue.$http.post(url, data).then((res) => {
                            success && success(res)
                        }).catch(function (err) {
                            fail && fail(err)
                        })
                    } else {
                        success && success()
                    }

                }).catch(() => {
                    cancel && cancel()
                });
            }
        })
    }
}
